import turtle as t
import math
import random
t.setup(800,800,0,0)
t.speed(8)
# 用嵌套for循环画三棵树
#使用函数(x为横坐标,y为纵坐标，r为边长)
def s(x,y,r,col,X,Y):
 #树干
    for i in range(3):
        t.penup()
        t.goto(X,Y)
        t.pencolor("#BDB76B")
        t.begin_fill()
        t.fillcolor("#BDB76B")
        t.pendown()
        t.goto(X,0)
        t.goto(X+8,0)
        t.goto(X+8,Y)
        t.goto(X,Y)
        t.end_fill()
        a=r
        b=x
        m=y
        for i in range(3):
            t.color("#BDB76B")
            t.penup()
            t.begin_fill()
            t.fillcolor("#BDB76B")
            t.goto(x,y)
            t.pendown()
            t.pensize(5)
            #三角形树枝
            for i in range(3):
                t.fd(r)
                t.right(240)
            r=r+12
            x=x-6
            h=math.sqrt(3)*r/2
            y=y-h
            t.end_fill()
        r=a
        x=b
        X=X+53
        x=X-8
        y=m
s(-308,0,24,"#BDB76B",-300,-100)
#位置通过改变函数值改变的路灯
#第一个灯泡
t.penup()
def Fn(x,y):
    t.goto(x,y-100)
    t.pencolor("#5F9EA0")
    t.begin_fill()
    t.fillcolor("#AFEEEE")
    t.goto(x,y+40)
    t.goto(x+30,y+40)
    t.goto(x+30,y-100)
    t.goto(x,y-100)
    t.end_fill()
    t.penup()
    t.goto(x+15,y+40)
    t.pendown()
    t.color("#00FF00")
    t.begin_fill()
    t.fillcolor("#00FF00")#黄色
    t.circle(24)
    t.end_fill()

    #第二个灯泡
    t.penup()
    t.pencolor("#AFEEEE")
    t.begin_fill()
    t.fillcolor("#AFEEEE")
    t.goto(x,y)
    t.pendown()
    t.goto(x-40,y)
    t.goto(x-40,y+30)
    t.goto(x-30,y+30)
    t.goto(x-30,y+10)
    t.goto(x,y+10)
    t.goto(x,y)
    t.end_fill()
    t.penup()
    t.goto(x-35,y+30)
    t.pendown()
    t.pencolor("#00FF00")
    t.begin_fill()
    t.fillcolor("#00FF00")
    t.circle(15)
    t.end_fill()
    #第三个灯泡
    t.penup()
    t.pencolor("#AFEEEE")
    t.begin_fill()
    t.fillcolor("#AFEEEE")
    t.goto(x+30,y)
    t.pendown()
    t.goto(x+70,y)
    t.goto(x+70,y+30)
    t.goto(x+60,y+30)
    t.goto(x+60,y+10)
    t.goto(x+30,y+10)
    t.goto(x+30,y)
    t.end_fill()
    t.penup()
    t.goto(x+65,y+30)
    t.pendown()
    t.pencolor("#00FF00")
    t.begin_fill()
    t.fillcolor("#00FF00")
    t.circle(15)
    t.end_fill()
    t.speed(4)
    t.penup()
    t.goto(x+70,y-95)
    t.pendown()
Fn(-120,0)
#用函数画一辆小汽车
def fun1(t, x, y):
    t.forward(x)
    t.left(y)
 
def fun2(t, x, y):
    t.forward(x)
    t.right(y)
#color函数有三个参数
t.color(1, 0, 0)
 
t.begin_fill()
fun1(t, 46, 90)
fun1(t, 10, 90)
fun2(t, 6, 60)
fun1(t, 8, 60)
fun1(t, 26, 60)
fun2(t, 8, 60)
fun1(t, 6, 90)
fun1(t,10,90) 
t.end_fill()
t.color(0, 0, 0)
#车轮
t.up()
fun2(t,8,90)
t.fd(5)
t.down()
t.begin_fill()
t.circle(5)
t.end_fill()
 
# 设置当前的指定角度为0度
t.setheading(0)
t.up()
fun2(t,24,90)
t.fd(5)
t.down()
t.begin_fill()
t.setheading(0)
t.circle(5)
t.end_fill()
t.penup()

#绘制随机位置和大小的星星
def star(star_count):
    t.hideturtle()
    t.speed(500)
    t.pensize(2)
    for i in range(star_count):
        t.penup()
        t.goto(random.randint(-720, -10), random.randint(60, 400))
        t.pendown()
        starsize = random.randint(16, 24)#随机大小
        for i in range(5):
            t.pencolor("#00FF00")
            t.forward(starsize)
            t.right(144)
#主函数：
def main():
    #t.bgcolor("snow")
    star(30)
    t.mainloop()
main()
t.done()